<?php
include_once "../funciones/class_carrito_orden.php";
include_once "filtro_cabecera.php";
include_once "../funciones/funciones_php.php";

if(isset($_POST["Proceso"])){
    
    //Conecta con la BD
    $conexion = conectar();
    //Comienza transaccion
    pg_query("BEGIN");
    
    // valida las variables que deben ser entero
    if(validaInt($_POST['idOrden']) && validaInt($_POST['monto']) && $_POST['monto'] > 0 && validaInt($_POST['tipoPago'])){
        
        
        $idOrden = trim($_POST['idOrden']);
        $monto = trim($_POST['monto']);
        
        if($_POST['tipoPago'] == 1){
            $tipoPago = "Efectivo";
        }
        else{
            $tipoPago = "Cheque";
        }
          
        
        //Valida cantidad de cheque solo si eligio cheque
        if(isset($_POST['cantidadCheque']) && validaInt($_POST['cantidadCheque']) && $_POST['cantidadCheque'] > 0){
            $cantidadCheque = trim($_POST['cantidadCheque']);
        }
        else{
            $cantidadCheque = 0;
        }
    }
    else{
        die("false");
    }
    
    $nombreConsignatario = strtoupper(trim(limpiaString($_POST['nombreConsignatario'])));
    $direccionConsignatario = strtoupper(trim(limpiaString($_POST['direccionConsignatario'])));
    $idRemitente = strtoupper(trim(limpiaString($_POST['idRemitente'])));
    $nombreRemitente = strtoupper(trim(limpiaString($_POST['nombreRemitente'])));
    
    //Datos recepcion
    $nombreReceptor = strtoupper(trim(limpiaString($_POST['nombreReceptor'])));
    $fechaRecepcion = strtoupper(trim(limpiaString($_POST['fechaRecepcion'])));
    $serie = strtoupper(trim(limpiaString($_POST['serie'])));
    $observaciones = strtoupper(trim(limpiaString($_POST['observacion'])));
    
     //consulta para obtener la fecha de emision de la orden y el id de encomienda
    $sql = sprintf("SELECT orden_flete.fecha_emision, cliente.id_tarifa_cliente, comuna.id_destino, encomienda.id_encomienda
                    FROM orden_flete, encomienda, cliente, comuna
                    WHERE orden_flete.id_orden_flete = '%s'
                    AND cliente.id_cliente = orden_flete.id_cliente
                    AND comuna.id_comuna = orden_flete.id_comuna
                    AND encomienda.id_orden_flete = orden_flete.id_orden_flete",
                    pg_escape_string($idOrden)
            );
    
    $consulta = pg_query($sql)or die("false");
    $fila = pg_fetch_array($consulta);
    
    //Calcula el valor total de envio
    $cobroTotal = calculaValorCobranza($cantidadCheque, 2 , $fila['id_destino'] , $fila['id_tarifa_cliente']);
     
    //Consulta para Actualizar Tabla Encomienda (cantidad de cheque, monto cobrado , tipo de pago y serie)
    $sql = sprintf("UPDATE encomienda set cantidad = '%d', monto = '%d', tipo_pago = '%s', serie = '%s'
                   WHERE id_orden_flete = '%s'
                   AND id_tipo_encomienda = 5",
                   pg_escape_string($cantidadCheque), pg_escape_string($monto), pg_escape_string($tipoPago),
                   pg_escape_string($serie), pg_escape_string($idOrden)
                );
    
    $consulta = pg_query($sql)or die("false");
    
    //Actualiza la persona que recibio y las observaciones
    $sql = sprintf("UPDATE orden_flete SET recepcionado_por = '%s', instrucciones_especiales = '%s', id_estado_orden = 12, fecha_entrega = '%s',
                            total = '%s'
                    WHERE id_orden_flete = '%s'",
                    pg_escape_string($nombreReceptor), pg_escape_string($observaciones), pg_escape_string($fechaRecepcion),
                    pg_escape_string($cobroTotal), pg_escape_string($idOrden)
                );
    
    $consulta = pg_query($sql)or die("false");
    
     //Deja la orden de flete en proceso
    $sql = sprintf("INSERT INTO orden_flete_estado_orden (id_orden_flete,id_estado_orden,fecha,id_observacion)
                    VALUES ('%s' , '12' , '%s' , '1')",pg_escape_string($idOrden),pg_escape_string($fechaRecepcion));
    
    pg_query($sql)or die("Error en la consulta");
   
    //Inserta cada cheque en la tabla detalle_encomienda
    //identifica cada sobre con su codigo
    for($j = 1 ; $j <= $cantidadCheque ; $j++ ){
        
        //Crea el codigo de barra
        $codigo_barra = $idOrden."S5S".$j;
        //consulta para ingresar la identificacion del sobre
        $sql = sprintf("INSERT INTO detalle_encomienda (id_encomienda, codigo_barra, estado_llegada, estado_finiquito, estado_despacho,
                       estado_entrega, fecha_llegada, fecha_finiquito, fecha_despacho, fecha_entrega)
                       VALUES ('%d','%s','1','1','1','1','%s','%s','%s','%s')",
                        pg_escape_string($fila['id_encomienda']),pg_escape_string($codigo_barra),
                        pg_escape_string($fila['fecha_emision']), pg_escape_string($fechaRecepcion),
                        pg_escape_string($fechaRecepcion), pg_escape_string($fechaRecepcion)
                    );
        $consulta = pg_query($sql) or die("Error al identificar las cobranza");
    }
    
    pg_query("COMMIT");
    echo "true";
}
else{
    echo "false";
}
?>